<?php

namespace Part10_TemplateMethodPattern\Code4;


abstract class AbstractClass
{
    // 一些抽象行为，放到子类去实现。
    public abstract function primitiveOperation1();

    public abstract function primitiveOperation2();

    // 模板方法，给出逻辑的骨架，而逻辑的组成是一些相应的抽象操作，它们都推迟到子类实现。
    public function templateMethod()
    {
        $this->primitiveOperation1();
        $this->primitiveOperation2();
    }
}